#include <iostream>
// 引入生成的文件
#include "contacts.pb.h"

int main()
{
    // 创建一个 PeopleInfo 对象，并定义字段
    contacts::PeopleInfo p1;
    p1.set_name("张三");
    p1.set_age(18);

    // 序列化
    std::string people_str; // 序列化后的结果存入到这里
    if (!p1.SerializePartialToString(&people_str))
        std::cout << "序列化失败" << std::endl;
    // 序列化后的数据以二进制形式存储，打印出来也看不懂，所以看看字符串大小
    std::cout << "序列化后的字符串大小：" << people_str.size() << std::endl;

    // 反序列化
    contacts::PeopleInfo parse;
    if (!parse.ParseFromString(people_str))
        std::cout << "反序列化失败" << std::endl;
    std::cout << "parse name: " << parse.name() << std::endl;
    std::cout << "parse age: " << parse.age() << std::endl;
}